package com.edu.base.ums.member.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 会员 对象 cls_member
 * 
 * @author lzs
 * @date 2021-05-24
 */
@ApiModel("会员对象")
public class ClsMember extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/** 主键 */
	@ApiModelProperty(value = "用户id")
	private String id;

	/** 1家长 2学生 3老师 */
	@Excel(name = "1家长 2学生 3老师")
	@ApiModelProperty(value = "会员类型 （1家长 2学生 3老师）")
	private String memberType;

	/** 会员等级ID */
	@Excel(name = "会员等级ID")
	@ApiModelProperty(value = "会员等级ID")
	private String memberLevelId;

	/** 真实姓名 */
	@Excel(name = "真实姓名")
	@ApiModelProperty(value = "真实姓名")
	private String realName;

	/** 昵称 */
	@Excel(name = "昵称")
	@ApiModelProperty(value = "昵称")
	private String nickName;

	/** 所在城市(为了有些用户不是选择省市区，而是输入汉字) */
	@Excel(name = "所在城市(为了有些用户不是选择省市区，而是输入汉字)")
	@ApiModelProperty(value = "城市")
	private String city;

	/** 个性签名 */
	@Excel(name = "个性签名")
	@ApiModelProperty(value = "个性签名")
	private String personalizedSignature;

	/** 用户来源 1 小程序 2 公众号 3 页面 */
	@Excel(name = "用户来源 1 小程序 2 公众号 3 页面")
	@ApiModelProperty(value = "用户来源 1 小程序 2 公众号 3 页面")
	private String sourceType;

	/** 余额 */
	@Excel(name = "余额")
	@ApiModelProperty(value = "余额") 
	private Long blance;

	/** 积分 */
	@Excel(name = "积分")
	@ApiModelProperty(value = "积分")  
	private Long integration;

	/** 历史积分数量 */
	@Excel(name = "历史积分数量")
	@ApiModelProperty(value = "历史积分数量")  
	private Long historyIntegration;

	/** 成长值 */
	@Excel(name = "成长值")
	@ApiModelProperty(value = "成长值")  
	private Long growth;
	
	/**能力测试得分**/
	@ApiModelProperty(value = "能力测试得分")  
	private BigDecimal  score;

	/**能力等级**/
	@ApiModelProperty(value = "能力测试剩余次数")
	private Long testTimes;
	
	/**能力等级**/
	@ApiModelProperty(value = "能力等级")
	private Long highLevel;

	@ApiModelProperty(value = "解锁阶梯等级")
	private Long unlockLevel;

	/** 帐号启用状态:0->禁用；1->启用 */
	@Excel(name = "帐号启用状态:0->禁用；1->启用")
	@ApiModelProperty(value = "帐号启用状态:0->禁用；1->启用")
	private String status;

	/** 消息开关0-关 1-开（默认） */
	@Excel(name = "消息开关0-关 1-开", readConverterExp = "默=认")
	private String informationOnOff;

	/** 禁用时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "禁用时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date banTime;

	/** 邀请码 */
	@ApiModelProperty(value = "邀请码")
	private String inviteCode;

	/** 购买时的数量 **/
	@ApiModelProperty(value = "购买时的数量") 
	private Long buyCount;

	/** 购买时的金额 **/
	@ApiModelProperty(value = "购买时的金额") 
	private Long buyMoney;

	/** 剩余抽奖次数 */
	@Excel(name = "剩余抽奖次数")
	@ApiModelProperty(value = "剩余抽奖次数") 
	private Long luckeyCount;

	/** 学历 */
	@ApiModelProperty(value = "学历")
	private String education;

	/** 等级 **/
	@ApiModelProperty(value = "等级")
	private String grade;

	@Excel(name = "行业")
	@ApiModelProperty(value = "行业")
	private String industry;

	@Excel(name = "英语水平")
	@ApiModelProperty(value = "英语水平")
	private String englishLevel;

	/** 所属店铺 */
	@Excel(name = "所属店铺")
	@ApiModelProperty(value = "所属店铺")
	private String storeId;

	/** 婚姻状态( 0：未婚 1：已婚) */
	@Excel(name = "婚姻状态( 0：未婚  1：已婚)")
	@ApiModelProperty(value = "婚姻状态( 0：未婚  1：已婚)")
	private String marStatus;

	/** 微信昵称 */
	@Excel(name = "微信昵称")
	@ApiModelProperty(value = "微信昵称")
	private String weixinNickName;

	@ApiModelProperty(value = "微信状态 1：未绑定 2：绑定")
	@Transient
	private String weixinState;

	/** qq昵称 */
	@Excel(name = "qq昵称")
	@ApiModelProperty(value = "qq昵称")
	private String qqNickName;

	/** 微博昵称 */
	@Excel(name = "微博昵称")
	@ApiModelProperty(value = "微博昵称")
	private String weiboNickName;

	/** 省代码 */
	@Excel(name = "省代码")
	@ApiModelProperty(value = "省代码")
	private String provCode;

	/** 城市代码 */
	@Excel(name = "城市代码")
	@ApiModelProperty(value = "城市代码")
	private String cityCode;

	/** 区县代码 */
	@Excel(name = "区县代码")
	@ApiModelProperty(value = "区县代码")
	private String countryCode;

	/** 创建时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date createDate;

	/** 头像 */
	@Excel(name = "头像")
	@ApiModelProperty(value = "头像")
	private String icon;

	/** 修改时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date updateDate;

	/** 手机号码 */
	@Excel(name = "手机号码")
	@ApiModelProperty(value = "手机号码")
	private String phone;

	/** 性别：0->未知；1->男；2->女 */
	@Excel(name = "性别：0->未知；1->男；2->女")
	@ApiModelProperty(value = "性别")
	private String gender;

	/** 备注 */
	@Excel(name = "备注")
	private String remarks;

	/** 删除标记 0:未删除 ， 1：删除 */
	private String delFlag;

	/** 用户名 、登录用户名 */
	@Excel(name = "用户名")
	@ApiModelProperty(value = "用户名")
	private String userName;

	/** 邮箱 */
	@Excel(name = "邮箱")
	@ApiModelProperty(value = "邮箱")
	private String email;

	/** 生日 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
	private Date birthday;

	/** 密码 */
	@Excel(name = "密码")
	@ApiModelProperty(value = "密码")
	private String passWord;

	/** $column.columnComment */
	@ApiModelProperty(value = "微信Openid")
	private String weixinOpenid;

	/** QQtoken */
	@Excel(name = "QQtoken")
	@ApiModelProperty(value = "扣扣qqToken")
	private String qqToken;

	/** 微博token */
	@Excel(name = "微博token")
	@ApiModelProperty(value = "微博token")
	private String blogToken;

	/** 苹果id */
	@ApiModelProperty(value = "苹果appleId")
	private String appleId;

	/** 推荐人 */
	@Excel(name = "推荐人")
	@ApiModelProperty(value = "推荐人")
	private String referrerId;

	/** 推荐学校/机构 */
	@Excel(name = "推荐学校/机构")
	private String referrerSchool;

	/** 禁用时间 */
	@Excel(name = "禁用时间")
	@ApiModelProperty(value = "禁用时间")
	private String ban;

	/** 最后登录时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
	@ApiModelProperty(value = "最后登录时间")
	private Date loginTime;

	/** APP版本 */
	@Excel(name = "APP版本")
	@ApiModelProperty(value = "APP版本")
	private String appVersion;

	/**
	 * 过期时间 单位分钟
	 */
	@ApiModelProperty(value = "过期时间（单位分钟）")
	private Long expireTime;

	/**
	 * 会员办理时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty(value = "会员办理时间")
	private Date handleDate;

	/**
	 * 会员办理会员到期时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty(value = "会员有效截至时间")
	private Date expireDate;

	/**
	 * 会员期限，单位为月。根据
	 */
	@Transient
	@TableField(exist = false)
	private String duetime;

	/**
	 * 用户唯一标识
	 */
	@ApiModelProperty(value = "token")
	@Transient
	@TableField(exist = false)
	private String token;

	@ApiModelProperty(value = "验证码")
	@Transient
	@TableField(exist = false)
	private String code;

	/** 当前学习课程 */
	@Excel(name = "当前学习课程")
	@Transient
	@TableField(exist = false)
	private String courseId;

	/** 当前课程班级 */
	@Excel(name = "当前课程班级")
	@Transient
	@TableField(exist = false)
	private String courseClassesId;

	/** 班级 */
	@Excel(name = "班级")
	@Transient
	@TableField(exist = false)
	private String classes;

	/** 年级 */
	@Excel(name = "年级")
	@Transient
	@TableField(exist = false)
	private String grades;

	/** 学校ID */
	@Transient
	@TableField(exist = false)
	private String schoolId;

	/** 学校名称 **/
	@Excel(name = "学校名称")
	@Transient
	@TableField(exist = false)
	private String schoolName;

	@Transient
	private String englishlevel;

	public void setId(String id) {
		this.id = id;
	}

	public String getId() {
		return id;
	}

	public void setMemberType(String memberType) {
		this.memberType = memberType;
	}

	public String getMemberType() {
		return memberType;
	}

	public void setMemberLevelId(String memberLevelId) {
		this.memberLevelId = memberLevelId;
	}

	public String getMemberLevelId() {
		return memberLevelId;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public String getRealName() {
		return realName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	public String getNickName() {
		return nickName;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getCity() {
		return city;
	}

	public void setPersonalizedSignature(String personalizedSignature) {
		this.personalizedSignature = personalizedSignature;
	}

	public String getPersonalizedSignature() {
		return personalizedSignature;
	}

	public void setSourceType(String sourceType) {
		this.sourceType = sourceType;
	}

	public String getSourceType() {
		return sourceType;
	}

	public void setBlance(Long blance) {
		this.blance = blance;
	}

	public Long getBlance() {
		return blance;
	}

	public void setIntegration(Long integration) {
		this.integration = integration;
	}

	public Long getIntegration() {
		return integration;
	}

	public void setHistoryIntegration(Long historyIntegration) {
		this.historyIntegration = historyIntegration;
	}

	public Long getHistoryIntegration() {
		return historyIntegration;
	}

	public void setGrowth(Long growth) {
		this.growth = growth;
	}

	public Long getGrowth() {
		return growth;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getStatus() {
		return status;
	}

	public void setInformationOnOff(String informationOnOff) {
		this.informationOnOff = informationOnOff;
	}

	public String getInformationOnOff() {
		return informationOnOff;
	}

	public void setBanTime(Date banTime) {
		this.banTime = banTime;
	}

	public Date getBanTime() {
		return banTime;
	}

	public void setInviteCode(String inviteCode) {
		this.inviteCode = inviteCode;
	}

	public String getInviteCode() {
		return inviteCode;
	}

	public void setBuyCount(Long buyCount) {
		this.buyCount = buyCount;
	}

	public Long getBuyCount() {
		return buyCount;
	}

	public void setBuyMoney(Long buyMoney) {
		this.buyMoney = buyMoney;
	}

	public Long getBuyMoney() {
		return buyMoney;
	}

	public void setLuckeyCount(Long luckeyCount) {
		this.luckeyCount = luckeyCount;
	}

	public Long getLuckeyCount() {
		return luckeyCount;
	}

	public void setEducation(String education) {
		this.education = education;
	}

	public String getEducation() {
		return education;
	}

	public void setGrade(String grade) {
		this.grade = grade;
	}

	public String getGrade() {
		return grade;
	}

	public void setIndustry(String industry) {
		this.industry = industry;
	}

	public String getIndustry() {
		return industry;
	}

	public void setStoreId(String storeId) {
		this.storeId = storeId;
	}

	public String getStoreId() {
		return storeId;
	}

	public void setMarStatus(String marStatus) {
		this.marStatus = marStatus;
	}

	public String getMarStatus() {
		return marStatus;
	}

	public void setWeixinNickName(String weixinNickName) {
		this.weixinNickName = weixinNickName;
	}

	public String getWeixinNickName() {
		return weixinNickName;
	}

	public void setQqNickName(String qqNickName) {
		this.qqNickName = qqNickName;
	}

	public String getQqNickName() {
		return qqNickName;
	}

	public void setWeiboNickName(String weiboNickName) {
		this.weiboNickName = weiboNickName;
	}

	public String getWeiboNickName() {
		return weiboNickName;
	}

	public void setProvCode(String provCode) {
		this.provCode = provCode;
	}

	public String getProvCode() {
		return provCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCountryCode(String countryCode) {
		this.countryCode = countryCode;
	}

	public String getCountryCode() {
		return countryCode;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

	public String getIcon() {
		return icon;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public Date getUpdateDate() {
		return updateDate;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getPhone() {
		return phone;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getGender() {
		return gender;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	public String getDelFlag() {
		return delFlag;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserName() {
		return userName;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getEmail() {
		return email;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}

	public String getPassWord() {
		return passWord;
	}

	public void setWeixinOpenid(String weixinOpenid) {
		this.weixinOpenid = weixinOpenid;
	}

	public String getWeixinOpenid() {
		return weixinOpenid;
	}

	public void setQqToken(String qqToken) {
		this.qqToken = qqToken;
	}

	public String getQqToken() {
		return qqToken;
	}

	public void setBlogToken(String blogToken) {
		this.blogToken = blogToken;
	}

	public String getBlogToken() {
		return blogToken;
	}

	public void setReferrerId(String referrerId) {
		this.referrerId = referrerId;
	}

	public String getReferrerId() {
		return referrerId;
	}

	public void setReferrerSchool(String referrerSchool) {
		this.referrerSchool = referrerSchool;
	}

	public String getReferrerSchool() {
		return referrerSchool;
	}

	public void setBan(String ban) {
		this.ban = ban;
	}

	public String getBan() {
		return ban;
	}

	public void setLoginTime(Date loginTime) {
		this.loginTime = loginTime;
	}

	public Date getLoginTime() {
		return loginTime;
	}

	public void setAppVersion(String appVersion) {
		this.appVersion = appVersion;
	}

	public String getAppVersion() {
		return appVersion;
	}

	public Long getTestTimes() {
		return testTimes;
	}

	public void setTestTimes(Long testTimes) {
		this.testTimes = testTimes;
	}

	public Long getUnlockLevel() {
		return unlockLevel;
	}

	public void setUnlockLevel(Long unlockLevel) {
		this.unlockLevel = unlockLevel;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId())
				.append("memberType", getMemberType()).append("memberLevelId", getMemberLevelId())
				.append("realName", getRealName()).append("nickName", getNickName()).append("city", getCity())
				.append("personalizedSignature", getPersonalizedSignature()).append("sourceType", getSourceType())
				.append("blance", getBlance()).append("integration", getIntegration())
				.append("historyIntegration", getHistoryIntegration()).append("growth", getGrowth())
				.append("status", getStatus()).append("informationOnOff", getInformationOnOff())
				.append("banTime", getBanTime()).append("inviteCode", getInviteCode()).append("buyCount", getBuyCount())
				.append("buyMoney", getBuyMoney()).append("luckeyCount", getLuckeyCount())
				.append("education", getEducation()).append("grade", getGrade()).append("industry", getIndustry())
				.append("storeId", getStoreId()).append("marStatus", getMarStatus())
				.append("weixinNickName", getWeixinNickName()).append("qqNickName", getQqNickName())
				.append("weiboNickName", getWeiboNickName()).append("provCode", getProvCode())
				.append("cityCode", getCityCode()).append("countryCode", getCountryCode())
				.append("createDate", getCreateDate()).append("createBy", getCreateBy()).append("icon", getIcon())
				.append("updateDate", getUpdateDate()).append("phone", getPhone()).append("updateBy", getUpdateBy())
				.append("gender", getGender()).append("remarks", getRemarks()).append("delFlag", getDelFlag())
				.append("userName", getUserName()).append("email", getEmail()).append("birthday", getBirthday())
				.append("passWord", getPassWord()).append("weixinOpenid", getWeixinOpenid())
				.append("qqToken", getQqToken()).append("blogToken", getBlogToken())
				.append("referrerId", getReferrerId()).append("referrerSchool", getReferrerSchool())
				.append("ban", getBan()).append("loginTime", getLoginTime()).append("appVersion", getAppVersion())
				.toString();
	}

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getCourseId() {
		return courseId;
	}

	public void setCourseId(String courseId) {
		this.courseId = courseId;
	}

	public String getCourseClassesId() {
		return courseClassesId;
	}

	public void setCourseClassesId(String courseClassesId) {
		this.courseClassesId = courseClassesId;
	}

	public String getClasses() {
		return classes;
	}

	public void setClasses(String classes) {
		this.classes = classes;
	}

	public String getGrades() {
		return grades;
	}

	public void setGrades(String grades) {
		this.grades = grades;
	}

	public String getSchoolId() {
		return schoolId;
	}

	public void setSchoolId(String schoolId) {
		this.schoolId = schoolId;
	}

	public String getEnglishlevel() {
		return englishlevel;
	}

	public void setEnglishlevel(String englishlevel) {
		this.englishlevel = englishlevel;
	}

	public String getSchoolName() {
		return schoolName;
	}

	public void setSchoolName(String schoolName) {
		this.schoolName = schoolName;
	}

	public String getAppleId() {
		return appleId;
	}

	public void setAppleId(String appleId) {
		this.appleId = appleId;
	}

	public Long getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Long expireTime) {
		this.expireTime = expireTime;
	}

	public Date getHandleDate() {
		return handleDate;
	}

	public void setHandleDate(Date handleDate) {
		this.handleDate = handleDate;
	}

	public Date getExpireDate() {
		return expireDate;
	}

	public void setExpireDate(Date expireDate) {
		this.expireDate = expireDate;
	}

	public String getDuetime() {
		return duetime;
	}

	public void setDuetime(String duetime) {
		this.duetime = duetime;
	}

	public String getWeixinState() {
		return weixinState;
	}

	public void setWeixinState(String weixinState) {
		this.weixinState = weixinState;
	}

	public BigDecimal getScore() {
		return score;
	}

	public void setScore(BigDecimal score) {
		this.score = score;
	}

	public Long getHighLevel() {
		return highLevel;
	}

	public void setHighLevel(Long highLevel) {
		this.highLevel = highLevel;
	}

	public String getEnglishLevel() {
		return englishLevel;
	}

	public void setEnglishLevel(String englishLevel) {
		this.englishLevel = englishLevel;
	}
	
	

}
